# -*- coding:utf-8 -*-
from flask import Flask, request, jsonify, abort
from flask_cors import CORS

from com.zzh.dao.hotsearchDao import HotSearchAPI

from . import app

CORS(app, supports_credentials=True)

'''热搜表 zzh_hotsearch API'''


# --------------热点推荐API  换一换--------------
@app.route('/hot-search', methods=['GET'])
def hot_search():
    item_info = HotSearchAPI().get_random_item()

    return jsonify({"itemInfo": item_info})


@app.route('/query-hotsearch/<int:index>',
           methods=['POST'])  # 查询zzh_hotsearch表。每次根据index的不同返回第1-10条，11-20条，21-30条数据（如果有）
def queryHotsearch(index):
    queryResultOfDatabaseHotsearch, hotsearchListJson = HotSearchAPI().queryHotSearch(index)  # 返回值的获取顺序要匹配

    if queryResultOfDatabaseHotsearch:
        return jsonify({"message": {"code": 1, "info": "已查询到热搜信息"}, "hotsearchListJson": hotsearchListJson})
    else:
        return jsonify({"message": {"code": 0, "info": "未查询到热搜信息"}})


@app.route('/add-hotsearch', methods=['POST'])  # invoice表添加记录
def addHotsearch():
    if not request.json:
        print request.json
        abort(400)
    addHotsearch = {
        'itemId': request.json.get('itemId', 1),  # itemId  关联zzh_item表item_id字段,默认关联第一条
        'searchCount': request.json.get('searchCount', 1),  # 搜索计数器，默认为1
        'hotsearchStatus': request.json.get('hotsearchStatus'),  # 热搜状态，这个状态背后的含义指的是什么？

    }
    addHotsearchResult = HotSearchAPI().addHotSearch(addHotsearch)
    if addHotsearchResult:
        return jsonify({"addHotsearchInfo": addHotsearch,
                        "massage": {"code": 1, "info": "addHotsearch OK"}})  # 添加函数调用成功，返回添加的信息（不包括hotsearch_id）
    else:
        return jsonify({"message": {"code": 0, "info": "addHotsearch Failed"}})  # 添加函数调用失败


@app.route('/update-hotsearch/<int:hotsearchId>', methods=['POST'])  # 根据hotsearchId更新zzh_hotsearch表指定记录
def updateHotsearch(hotsearchId):
    if not request.json:
        print request.json
        abort(400)
    updateHotsearch = {
        'itemId': request.json.get('itemId', 1),  # itemId  关联zzh_item表item_id字段,默认关联第一条
        'searchCount': request.json.get('searchCount', 1),  # 搜索计数器，默认为1
        'status': request.json.get('status', ),  # 热搜状态，这个状态背后的含义指的是什么？
    }
    updateHotsearchResult = HotSearchAPI().updateHotsearchById(updateHotsearch, hotsearchId)
    if updateHotsearchResult:
        return jsonify({"updateHotsearchInfo": updateHotsearch,
                        "massage": {"code": 1, "info": "updateHotsearch OK"}})  # 添加函数调用成功，返回添加的信息（不包括hotsearch_id）
    else:
        return jsonify({"message": {"code": 0, "info": "updateHotsearch Failed"}})  # 添加函数调用失败


@app.route('/delete-hotsearch/<int:hotsearchId>', methods=['DELETE'])  # 根据hotsearchId删除zzh_hotsearch表指定记录
def deleteHotsearch(hotsearchId):
    deleteHotsearchResult = HotSearchAPI().deleteHotsearchById(hotsearchId)
    if deleteHotsearchResult:
        return jsonify({"message": {"code": 1, "info": "删除热搜记录操作成功！"}})
    else:
        return jsonify({"message": {"code": 0, "info": "删除热搜记录操作失败！"}})
